# -*- mode: python; coding: utf-8; -*-
##--------------------------------------------------------------------------##
##
## Copyright (C) 1998-2003 Markus Oberhumer <markus@oberhumer.com>
## Copyright (C) 2003 Mt. Hood Playing Card Co.
## Copyright (C) 2005-2010 Skomoroh <skomoroh@users.sourceforge.net>
## Copyright (C) 2010-2013 Jeremy Austin-Bardo <tjaustinbardo@gmail.com>
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program.  If not, see <http://www.gnu.org/licenses/>.
##
##--------------------------------------------------------------------------##
__docformat__ = 'restructuredtext en'

from . import  __common__ as mgame
from ...gamelib import info as gi


class Faro(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5801, name='Double Mahjongg Faro', short_name='Faro',
                    ncards=288)
    __layout__ = ('0aaahabaachadaaeoaehafaagiahaaihajaakoakhalaamhanaaoobcvb'
                  'hobmacbhccvccacdacgichCchaciaclhcmvcmacnodcCdcvdhodmCdmae'
                  'bhecvecaedheeaefcehCehaejhekaelhemvemaenofcvfhofmbgcagfhg'
                  'gaghoghhgiagjbgmahaahohiahioajapjaajccjebjhcjkajmajopjohk'
                  'ahkcokhhkmhkoalaalcqlcalfhlgalhvlhhlialjalmqlmalohmcomhCm'
                  'hhmmanbqncandhneanfbnhvnhanjhnkanlqnmannhocooeoohookhomap'
                  'cppcCpdbpevpebphwphbpkvpkCplapmppmhqcoqeoqhoqkhqmarbqrcar'
                  'dhrearfbrhvrharjhrkarlqrmarnhscoshCshhsmataatcqtcatfhtgat'
                  'hvthhtiatjatmqtmatohuahucouhhumhuoavapvaavccvebvhcvkavmav'
                  'opvohwahwoaxaaxobycayfhygayhoyhhyiayjbymozcvzhozmaAbhAcvA'
                  'caAdhAeaAfcAhCAhaAjhAkaAlhAmvAmaAnoBcCBcvBhoBmCBmaCbhCcvC'
                  'caCdaCgiChCChaCiaClhCmvCmaCnoDcvDhoDmaEahEbaEchEdaEeoEehE'
                  'faEgiEhaEihEjaEkoEkhElaEmhEnaEo')
    __version__ = 7.70


class BigSquare(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5802, name='Double Mahjongg Big Square',
                    short_name='Big Square', ncards=288,
                    game_type=gi.GT.HIDDEN)
    __layout__ = ('0daadacdaedagdaidakdcadccdcedcgdcidckdeadecdeedegdeidekdg'
                  'adgcdgedggdgidgkdiadicdiedigdiidikdkadkcdkedkgdkidkkdmadm'
                  'cdmedmgdmidmkdoadocdoedogdoidokdqadqcdqedqgdqidqkdsadscds'
                  'edsgdsidskduaducduedugduidukdwadwcdwedwgdwidwk')
    __version__ = 7.70


class TwoSquares(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5803, name='Double Mahjongg Two Squares',
                    short_name='Two Squares', ncards=288)
    __layout__ = ('0daadacdaedagdaidakdcadccdcedcgdcidckdeadecdeedegdeidekdg'
                  'adgcdgedggdgidgkdiadicdiedigdiidikdkadkcdkedkgdkidkkdoado'
                  'cdoedogdoidokdqadqcdqedqgdqidqkdsadscdsedsgdsidskduaducdu'
                  'edugduidukdwadwcdwedwgdwidwkdyadycdyedygdyidyk')
    __version__ = 7.70


class Rows(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5804, name='Double Mahjongg Rows',
                    short_name='Rows', ncards=288, game_type=gi.GT.HIDDEN)
    __layout__ = ('0daadacCaddaeCafdagCahdaidakdcadckeeadeceeeeegdeieekegaeg'
                  'keiadiceieeigdiieikekaekkemadmcemeemgdmiemkeoaeokeqadqceq'
                  'eeqgdqieqkesaeskeuaduceueeugduieukewaewkeyadyceyeeygdyiey'
                  'kdAadAkdCadCcCCddCeCCfdCgCChdCidCk')
    __version__ = 7.70


class TwinPicks(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5805, name='Double Mahjongg Twin Picks',
                    short_name='Twin Picks', ncards=288)
    __layout__ = ('0aacaaeaagaaiaakaamhbdhbfhbhhbjhblacaaccaceoceacgocgacioc'
                  'iackockacmacohdbhddhdfvdfhdhvdhhdjvdjhdlhdnaeaaecoecaeeoe'
                  'eaegoegCegaeioeiCeiaekoekaemoemaeohfbhfdvfdhffvffhfhvfhhf'
                  'jvfjhflvflhfnagaagcogcageogeCgeaggoggCggagiogiCgiagkogkCg'
                  'kagmogmagohhbhhdvhdhhfvhfhhhvhhhhjvhjhhlvhlhhnaiaaicoicai'
                  'eoieaigoigCigaiioiiCiiaikoikaimoimaiohjbhjdhjfvjfhjhvjhhj'
                  'jvjjhjlhjnakaakcakeokeakgokgakiokiakkokkakmakohldhlfhlhhl'
                  'jhllamcameamgamiamkammapaapcapeapgapiapkapmapoascaseasgas'
                  'iaskasmhtdhtfhthhtjhtlauaaucaueoueaugougauiouiaukoukaumau'
                  'ohvbhvdhvfvvfhvhvvhhvjvvjhvlhvnawaawcowcaweoweawgowgCwgaw'
                  'iowiCwiawkowkawmowmawohxbhxdvxdhxfvxfhxhvxhhxjvxjhxlvxlhx'
                  'nayaaycoycayeoyeCyeaygoygCygayioyiCyiaykoykCykaymoymayohz'
                  'bhzdvzdhzfvzfhzhvzhhzjvzjhzlvzlhznaAaaAcoAcaAeoAeaAgoAgCA'
                  'gaAioAiCAiaAkoAkaAmoAmaAohBbhBdhBfvBfhBhvBhhBjvBjhBlhBnaC'
                  'aaCcaCeoCeaCgoCgaCioCiaCkoCkaCmaCohDdhDfhDhhDjhDlaEcaEeaE'
                  'gaEiaEkaEm')
    __version__ = 7.70


class Roost(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5806, name='Double Mahjongg Roost',
                    short_name='Roost', ncards=288)
    __layout__ = ('0aaahabaacoachadvadaaeoaehafvafaagoaghahvahaaioaihajaakaa'
                  'maaoCbfhblhbnacbhccacdocdhcevceacfocfhcgvcgachochhciacjac'
                  'locmacnhdkhdmaeiaekoelaemaeoafaafcafehfjhflvflhfnhgchgeag'
                  'hagjogkaglCglogmagnahbohcahdoheahfhhihhkvhlhhmhibhidviehi'
                  'faiioijaikoilaimajaajcojdajeCjeojfajghjjvjkhjlajohkcvkdhk'
                  'evkfhkgakjokkaklalbolcaldolealfClfolgalhhlkblnhmbhmdvmehm'
                  'fvmghmhamkomnanaancondaneonfangCngonhanianmhnnanohochoevo'
                  'fhogvohhoiapbapdopeapfopgaphCphopiapjhpkaploplhpmapnhqchq'
                  'evqfhqgvqhhqiaraarcordareorfargCrgorhariarmhrnarohsbhsdvs'
                  'ehsfvsghshaskosnatbotcatdoteatfCtfotgathhtkbtnhucvudhuevu'
                  'fhugaujoukaulavaavcovdaveCveovfavghvjvvkhvlavohwbhwdvwehw'
                  'fawiowjawkowlawmaxboxcaxdoxeaxfhxihxkvxlhxmhychyeayhayjoy'
                  'kaylCyloymaynazaazcazehzjhzlvzlhznaAiaAkoAlaAmaAohBkhBmaC'
                  'bhCcaCdoCdhCevCeaCfoCfhCgvCgaChoChhCiaCjaCloCmaCnCDfhDlhD'
                  'naEahEbaEcoEchEdvEdaEeoEehEfvEfaEgoEghEhvEhaEioEihEjaEkaE'
                  'maEo')
    __version__ = 7.70


class Castle(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5807, name='Double Mahjongg Big Castle',
                    short_name='Big Castle', ncards=288)
    __layout__ = ('0eaadacdaeeageaidakdameaodcadcocddvdecdfvdgcdhCdhvdicdjvd'
                  'kcdldeadeoafdaflcgacgoahdahlciacioajdajlckahkdhklckoaldel'
                  'fblheljallcmahmdhmlcmoandbnfbnjanleoahodoofoojholeooapdbp'
                  'fvpfbpjvpjapleqahqdoqfoqjhqleqoardbrfbrjarlcsahsdhslcsoat'
                  'detfbthetjatlcuahudhulcuoavdavlcwacwoaxdaxlcyacyoazdazldA'
                  'adAocBdvBecBfvBgcBhCBhvBicBjvBkcBldCadCoeEadEcdEeeEgeEidE'
                  'kdEmeEo')
    __version__ = 7.70


class EightSquares(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5808, name='Double Mahjongg Eight Squares',
                    short_name='Eight Squares', ncards=288)
    __layout__ = ('0daadacdaedahdajdaldcadccdcedchdcjdcldeadecdeedehdejdeldh'
                  'adhcdhedhhdhjdhldjadjcdjedjhdjjdjldladlcdledlhdljdlldoado'
                  'cdoedohdojdoldqadqcdqedqhdqjdqldsadscdsedshdsjdsldvadvcdv'
                  'edvhdvjdvldxadxcdxedxhdxjdxldzadzcdzedzhdzjdzl')
    __version__ = 7.70


class BigFlyingDragon(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5809, name='Double Mahjongg Big Flying Dragon',
                    short_name='Big Flying Dragon', ncards=288)
    __layout__ = ('0aajacaaciackacsaeaaegaeihejaekaemaesagaageaggbgibgkagmag'
                  'oagsaiaaicaiebigbiibikbimaioaiqaisakabkcbkebkgbkibkkbkmbk'
                  'obkqaksbmabmccmecmgcmicmkcmmcmobmqbmsboaboccoedogdoidokdo'
                  'mcooboqbosbqabqccqedqgeqieqkdqmcqobqqbqsJrjbsabsccsedsges'
                  'ieskdsmcsobsqbssbuabuccuedugduidukdumcuobuqbusbwabwccwecw'
                  'gcwicwkcwmcwobwqbwsayabycbyebygbyibykbymbyobyqaysaAaaAcaA'
                  'ebAgbAibAkbAmaAoaAqaAsaCaaCeaCgbCibCkaCmaCoaCsaEaaEgaEihE'
                  'jaEkaEmaEsaGaaGiaGkaGsaIaaIjaIsaKj')
    __version__ = 7.70


class Sphere(mgame.AbstractMahjonggGame):
    __info__ = dict(id=5810, name='Double Mahjongg Sphere',
                    short_name='Sphere', ncards=288)
    __layout__ = ('0aajaalaanabhhbkhbmabpacfhciacjockaclocmacnhcoacraddhdgad'
                  'hodivdkhdlvdmodoadphdqadtaefoegveihejaekoekaemoemhenveooe'
                  'qaerafchfdhffhfhafiafohfphfrhftafuageogeaggpggpgihgjpgkbg'
                  'lpgmhgnpgoagqpgqagsogsahbhhchhfhhhahjahnhhphhrhhuahvaidoi'
                  'dvieaifoigaihoiihijoikbiloimhinoioaipoiqairvisaitoitajahj'
                  'bhjdhjfhjhvjlhjphjrhjthjvajwakcokcvkdakeokeakgokgakiokiak'
                  'kokkakmokmakookoakqokqaksoksvktakuokualahlbhldhlfvlfhlhvl'
                  'hhljvljhllvllhlnvlnhlpvlphlrvlrhlthlvalwamcomcvmdameomeam'
                  'gomgamiomiamkomkammommamoomoamqomqamsomsvmtamuomuanahnbhn'
                  'dhnfhnhvnlhnphnrhnthnvanwaodoodvoeaofoogaohooihojookboloo'
                  'mhonoooaopooqaorvosaotootapbhpchpfhphapjapnhpphprhpuapvaq'
                  'eoqeaqgpqgpqihqjpqkbqlpqmhqnpqoaqqpqqaqsoqsarchrdhrfhrhar'
                  'iarohrphrrhrtaruasfosgvsihsjaskoskasmosmhsnvsoosqasratdht'
                  'gathotivtkhtlvtmotoatphtqattaufhuiaujoukauloumaunhuoaurav'
                  'hhvkhvmavpawjawlawn')
    __version__ = 7.70


PROVIDES = [BigFlyingDragon, BigSquare, Castle, EightSquares, Faro, Roost,
            Rows, Sphere, TwinPicks, TwoSquares]